Caching in a network may reduce loads on servers that are sending identical information to multiple clients. For example, Hypertext Transfer Protocol (HTTP) provides for caching of files along a pipeline so that the file may be provided from the cache when a subsequent request is received. Providing the file from the cache may beneficially reduce bandwidth consumption on the network, reduce the number of hits to the server hosting the original file and reduce the amount of time it takes for the client to receive the file. However, it may be desirable at times to use a secure connection for the transfer of files.
Secure connections prevent caching and thus eliminate the above benefits. For example, a secure connection using the Secure Socket Layer (SSL) prevents HTTP caching. Moreover, a secure connection (e.g. HTTPS) may require that each client make a connection using a security token unique to the client. Caching the content of such an encrypted stream provides no useful benefit. For example, assume a first member of a group authorized to access a file obtains the file over a secure HTTPS connection and that file (despite the fact that HTTPS prevents caching) was cached along the pipeline and a second group member were to subsequently obtained that file from the cache, the second group member does not have the first member's unique security token and would not be able to use the file obtained from the cache.
A first problem is that current systems and transfer protocols do not provide for the secure transmission of a file to a group of authorized users that benefits from the caching of that file. A second problem is that current systems and transfer protocols do not provide for the secure transmission of a file to a group of authorized users in a manner that benefits from existing caching mechanisms. A third problem is the difficulty of notifying a device or its user to take an action (e.g. to obtain the file) when the device is behind a network separation device (e.g. a firewall and/or Network Address Translator (NAT)).